﻿using System.Windows;
using QDP.Platform.Services;

namespace QDP.Platform.Silverlight.Manager
{
    /// <summary>提供对工具栏支持的管理器类对象。</summary>
    public class ToolbarManager
    {
        private IToolbarService Service;
        // 初始化服务对象。
        private void InitializeService()
        {
            Service = ServiceLoader.Load<IToolbarService>();
        }
        /// <summary>将ui显示在工具栏顶部左侧容器中.</summary>
        /// <param name="ui"></param>
        public void Add(UIElement content, ToolbarLayoutDirection direction = ToolbarLayoutDirection.Top | ToolbarLayoutDirection.Left)
        {
            if (Service == null) InitializeService();
            if (Service == null)
            {
                //MessageBox.Show("尚未发现IToolbarService接口，打开工具栏失败");
            }
            else
            {
                Service.Add(content, direction);
            }
        }
        /// <summary>移除工具栏顶部左侧容器中的UI.</summary>
        /// <param name="ui"></param>
        public void Remove(UIElement content)
        {
            if (Service == null) InitializeService();
            if (Service == null)
            {
                //MessageBox.Show("尚未发现IToolbarService接口，打开工具栏失败");
            }
            else
            {
                Service.Remove(content);
            }
        }
        /// <summary>平台公共扩展方法，用于打开专题窗口</summary>
        public void Show()
        {
            // 服务调用时，优先导入一次服务，无论导入结构如何，均进行后续操作.
            if (Service == null) InitializeService();
            if (Service == null)
            {
                this.ShowMessage("尚未发现IToolbarService接口，打开工具栏失败");
            }
            else
            {
                Service.Expand();
            }
        }
        /// <summary>平台公共扩展方法，用于隐藏专题窗口</summary>
        public void Hide()
        {
            // 服务调用时，优先导入一次服务，无论导入结构如何，均进行后续操作.
            if (Service == null) InitializeService();
            if (Service == null)
            {
                this.ShowMessage("尚未发现IToolbarService接口，收起工具栏失败");
            }
            else
            {
                Service.Collpase();
            }
        }
    }
}